<?php
namespace app\model\customer;

use app\model\BaseModel;
use think\facade\Db;

/**
 * 客户基础数据模型
 * 对应表: oa_basic_customer
 */
class Basic extends BaseModel
{
    // 设置表名（不包含前缀）
    protected $name = 'basic_customer';
    
    // 设置主键
    protected $pk = 'id';
    
    // 关闭自动时间戳（因为表使用的是时间戳而非datetime）
    protected $autoWriteTimestamp = false;
    
    // 字段类型
    protected $type = [
        'id'          => 'integer',
        'types'       => 'string',
        'title'       => 'string',
        'status'      => 'integer',
        'create_time' => 'timestamp',
        'update_time' => 'timestamp'
    ];

    /**
     * 获取指定类型的基础数据（用于oa_basic_customer表字典数据）
     * @param string|int $type 数据类型编码，对应oa_basic_customer表中的types字段
     * @return array 返回格式化的字典选项数组
     * @example 获取客户状态：getByType(1) 返回会员/非会员/过期会员等选项
     * @example 获取客户来源：getByType(3) 返回电话/微信/上门等选项
     * @example 获取客户类型：getByType(5) 返回个人客户/企业客户等选项
     */
    public function getByType($type)
    {
        return Db::name($this->name)
            ->where('types', $type) // 注意：表字段名为types（复数形式）
            ->where('status', 1) // 只获取启用状态的数据
            ->field('id,title as name') // 使用title字段作为显示名称
            ->order('id ASC')
            ->select()
            ->toArray();
    }
}